<?php
	// On prolonge la session
	session_start();
	
	$id_anim='';
	$code='';
	$message='';
	
	require_once dirname(__FILE__) . "/../../includes/config.php";
	require_once PHP_ROOTPATH.'/classes/database.php';
	
	$idconnect = Database::getInstance();
	
	//vérifiaction des droits de l'utilisateur
	$querytest = pg_query($idconnect,"SELECT * FROM droit_utilisateur WHERE (id_droit=18  or id_droit=1 )
	and id_user=".$_SESSION['membre_id']);
	$saise_immuno = pg_num_rows($querytest);
	if(isset($_SESSION['membre_id']) && $saise_immuno != 0){
			
		// On teste si la variable de session existe et contient une valeur
		if(empty($_SESSION['id_anim'])){
			// Si inexistante ou nulle, on redirige vers le formulaire de login
			header('Location: ../saisie.php');
			exit();
		}
		else{
			$id_anim=$_SESSION['id_anim'];
			$code=$_SESSION['code'];
		}
		
		// Remplissage de la base de données
		if(!empty($_POST)){
			
			//vérification que les champs ont bien été remplis
			if($_POST['date']=="none" || $_POST['exp']=="none" || $_POST['code']=="none" || empty($_POST['diag']) || empty($_POST['lame'])){
				$message = 'Veuillez entrer les informations générales du test immunologique!';
			}
			else{
				$_POST['date'] = htmlspecialchars($_POST['date']);
				$_POST['exp'] = htmlspecialchars($_POST['exp']);
				$_POST['code'] = htmlspecialchars($_POST['code']);
				$_POST['diag'] = htmlspecialchars($_POST['diag']);
				$_POST['lame'] = htmlspecialchars($_POST['lame']);
				
				$code2='';
				if($_POST['code']=="autre" && !(empty($_POST['autre_code']))){$code2 = htmlspecialchars($_POST['autre_code']);}
				else if($_POST['code']!="autre"){$code2 = $_POST['code'];}
				
				if(preg_match("#^\d\d\/\d\d\/\d\d\d\d$#",$_POST['date']) && $_POST['lame']!=0 && $code2!=''){
					//récupération de l'id_type_test
					$query = pg_query($idconnect,"SELECT id_type_test FROM type_test WHERE label LIKE '%Test immunologique%'");
					$back = pg_fetch_assoc($query);
					$id_type_test = $back['id_type_test'];
					
					//vérification de l'existance d'un test à cette date avec cet expérimentateur
					$query1 = pg_query($idconnect,"SELECT id_test FROM test  WHERE date_test='".$_POST['date']."' AND experimentateur='".$_POST['exp']."' 
					AND id_type_test=$id_type_test");
					$nb1 = pg_num_rows($query1);				
					if($nb1!=0){ // si une date de test avec cet expérimentateur existe déjà
						$back1 = pg_fetch_assoc($query1);  
						$id_test = $back1['id_test'];
					}
					else{ //création de test
						$sql = pg_query($idconnect,"INSERT INTO test (id_type_test,date_test,experimentateur) VALUES ($id_type_test,'".$_POST['date']."',
						'".$_POST['exp']."') RETURNING id_test");
						$insert_row = pg_fetch_row($sql);
						$id_test = $insert_row[0];
					}
					
					//vérification de l'existance de l'id_res
					$query2 = pg_query($idconnect,"SELECT id_res FROM resultat_test WHERE id_test=$id_test AND id_animal=$id_anim");
					$nb2 = pg_num_rows($query2);
					if($nb2!=0){ //si un id_res existe déjà
						$back2 = pg_fetch_assoc($query2);  
						$id_res = $back2['id_res'];
					}
					else{ //création de l'id_res
						$sql = pg_query($idconnect,"INSERT INTO resultat_test (id_test,id_animal) VALUES ($id_test,$id_anim) RETURNING id_res");
						$insert_row = pg_fetch_row($sql);
						$id_res = $insert_row[0];
					}
					
					//vérification de l'existance de test_immunologique
					$query3 = pg_query($idconnect,"SELECT * FROM test_immunologique WHERE id_res=$id_res AND code_anticorps='$code2'");
					$nb3 = pg_num_rows($query3);
					if($nb3!=0){ //si un id_res existe déjà
						$back3 = pg_fetch_assoc($query3);  
						$id_res2 = $back3['id_res'];
						if(!($back3['diagnostic'])){$sql = pg_query($idconnect,"UPDATE Test_immunologique SET diagnostic='".$_POST['diag']."' WHERE id_res=$id_res");}
					}
					else{ //création du test immunologique
						$sql = pg_query($idconnect,"INSERT INTO test_immunologique (id_res,code_anticorps,diagnostic) VALUES ($id_res,'$code2','".$_POST['diag']."'
						) RETURNING id_res");
						$insert_row = pg_fetch_row($sql);
						$id_res2 = $insert_row[0];
					}
					
					//vérification de l'existance de lame_immuno pour chaque lame
					for($i=1; $i<=$_POST['lame'];$i++){
						$num='';
						$obs='';
						
						foreach ($_POST as $cle=>$value){
							if($cle=="num$i"){$num=htmlspecialchars($value);}
							if($cle=="obs$i"){$obs=htmlspecialchars($value);}
						}
						
						if($num!=''){
							$query4 = pg_query($idconnect,"SELECT * FROM lame_immuno WHERE id_res=$id_res2 AND num_lame=$num");
							$nb4 = pg_num_rows($query4);
							if($nb4!=0){ //si un id_res existe déjà
								$back4 = pg_fetch_assoc($query4);  
								$id_res3 = $back4['id_res'];
								if(!($back4['observation']) && $obs!=''){$sql = pg_query($idconnect,"UPDATE lame_immuno SET observation='$obs' WHERE num_lame=$num 
								AND id_res=$id_res2");}
							}
							else{ //création de lame_immuno
								if($obs!=''){$sql = pg_query($idconnect,"INSERT INTO lame_immuno (id_res,num_lame,observation) VALUES ($id_res2,$num,'$obs') RETURNING id_res");}
								else{$sql = pg_query($idconnect,"INSERT INTO lame_immuno (id_res,num_lame) VALUES ($id_res2,$num) RETURNING id_res");}
								$insert_row = pg_fetch_row($sql);
								$id_res3 = $insert_row[0];
							}
							
							//vérification si des photos ont été chargées par l'utilisateur
							if(isset($_FILES)){
								$extensions = array('.png','.jpg', '.jpeg','.bmp','.tif');
								$date = str_replace('/','.',$_POST['date']);
								$dossier = ROOTPATH."/photos_immuno/$date/$id_anim/";
								
								if(!(is_dir($dossier))){
									if(@mkdir("../../photos_immuno/$date/$id_anim",0777,true)){}
									$dossier = "../../photos_immuno/$date/$id_anim/";
								}
								
								foreach($_FILES as $cle3=>$value3){ //comparaison du nom de l'input pour qu'il corresponde à la lame en cours
									if(preg_match("#^fichierpajout$i\_\d{1}$#",$cle3)){						
										$fichier = basename($value3['name']);
									
										//vérification de l'existance de la photo dans lame_immuno
										$query4 = pg_query($idconnect,"SELECT * FROM photo_immuno WHERE id_res=$id_res3 AND num_lame=$num AND photo='$fichier'");
										$nb4 = pg_num_rows($query4);
										//si la photo est déjà enregistrée
										if($nb4!=0){ $message .= "Photo $fichier déjà enregistrée. "; }
										else{ //création de photo_immuno et enregistrement du fichier sur le serveur
											// récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
											$extension = strrchr($value3['name'], '.');
											//Ensuite on teste
											if(!in_array($extension, $extensions)){ //Si l'extension n'est pas dans le tableau
												$erreur = "Vous devez uploader un fichier de type png, gif, jpg, jpeg, bmp ou tif. ";
											}
											if(!isset($erreur)){ //S'il n'y a pas d'erreur, on exécute le script
												if(move_uploaded_file($value3['tmp_name'], $dossier . $fichier)){ //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
													$message .="Photo $fichier enregistrée. ";
													$sql = pg_query($idconnect,"INSERT INTO photo_immuno(id_res,photo,num_lame) VALUES ($id_res,'$fichier',$num)");	
												}
												else{ //Sinon (la fonction renvoie FALSE)
													$message .= "Echec de l'enregistrement de la photo $fichier. ";
												}
											}
											else{$message .= "Format de la photo $fichier non valide. ";}
										}
									}
								}
							}
						}
					}
					$message .= "Test enregistré";
				}
				else{ $message.= "Date et/ou code anitcorps et/ou nombre de lame invalide";}
			}
		}
	}
	else{
		header('Location: ../../site.php');
		exit();
	}
?>

<!DOCTYPE html>
<html>
	<head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../../style.css" />
		<!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="../../style_ie.css" />
        <![endif]-->
        <title>Base de données microcèbes</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
		<script>window.jQuery || document.write("<script src='../../js/jquery.min.js'><\/script>")</script>     
		<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
		<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
		<script src="../../js/date_picker.js"></script>
		<script src="../../js/verif_form.js"></script>
		<script src="immuno_s.js"></script>   
    </head>
    
    <body>
		<?php include((dirname(dirname(dirname(__FILE__))))."/menu.php"); ?>

		<section id="main">
			<header>
				<h1>Saisie - Test immunologique animal <?php echo $code; ?></h1>
			</header>
			<?php include((dirname(dirname(__FILE__)))."/menu_saisie.php"); ?>
			<section id="animal">
				<section id="contenu">
					<form name="form1" method="POST" action="" id="form1" enctype="multipart/form-data" onsubmit="return verif_form(this)">
						<p id="infos_m">
							<label class="code2"><?php echo $message; ?></label><br/>
							<label class="label">Date du test:</label><input name="date" type="text" id="datepicker" class="box">
							<span class="code3" id="erreur_date">* Champ du type jj/mm/aaaa</span>
							<br/>
							<label class="label">Expérimentateur:</label>
							<select class="box" name="exp">
								<option value="none">Sélection</option>
								<?php                   
									//remplissage du select avec la liste des utilisateurs inscrits
									$query = pg_query($idconnect,"SELECT DISTINCT (Prenom, Nom) as name FROM Utilisateur WHERE statut!='Visiteur' AND statut!='Collaborateur extérieur'");
									while ($back = pg_fetch_assoc($query)) {
										$temp =str_replace(',',' ',$back["name"]);
										$temp =str_replace('(','',$temp);
										$temp =str_replace(')','',$temp);
										echo "<option value=\"" . $temp."\">" . $temp."</option>\n";
									}
								?>   		
							</select><span class="code3" id="erreur_exp">* Sélectionner un expérimentateur</span><br/>
							<label class="label">Code de l'anticorps:</label>
							<select class="box" name="code" onchange="afficher(this)">
								<option value="none">Sélection</option>
								<?php                   									 
									 //rempliisage du select avec la liste des utilisateurs inscrits
									$query = pg_query($idconnect,"SELECT DISTINCT(code_anticorps) FROM Test_immunologique ORDER BY code_anticorps");
									while ($back = pg_fetch_assoc($query)) {
										echo "<option value=\"" . $back["code_anticorps"] . "\">" . $back["code_anticorps"] . "</option>";
									}
								?>          
								<option value="autre">Nouveau</option>
							</select><span class="code3" id="erreur_code">* Sélectionner un anticorps</span>
							<label class="autre">Précisez:</label><input type="text" class="autre" name="autre_code">
							<span class="code3" id="erreur_autre_code">* Saisir un code anticorps</span><br/>
							
							<label class="label">Diagnostic:</label><input name="diag" type="text" class="box">
							<span class="code3" id="erreur_diag">* Remplir le champ</span><br/>
							<label class="label">Nombre de lames:</label><input id="nb" name="lame" type="text" value="" class="box">
							<input id="bouton" type="button" value="Entrer les lames"><br/>
						</p>
						<div id="infos_lame"></div>
					</form>					
				</section>
			</section>
		</section>
	</body>
</html>
